package com.sky;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@SpringBootApplication
@EnableTransactionManagement //开启注解方式的事务管理
@Slf4j
@EnableScheduling
public class SkyApplication {
    public static void main(String[] args) {
        SpringApplication.run(SkyApplication.class, args);
        log.info("server started");

        /**
         * 总结:
         *  1. ArrayList在new的时候并没有实际给容量
         *  2. ArrayList初始化的容量是10
         *  3. ArrayList每次扩容是1.5倍
         *  4. ArrayList的各种方法是线程安全的嘛？
         *  5. ArrayList的编码的一些习惯和风格
         *      1. 如果对象不使用了一定用null置空-让垃圾回收机制及时回收对象
         *      2. 如果一个方法的代码太多或者又重复的一定要抽取多个方法
         *
         *         ArrayList list = new ArrayList();
         *         list.add("111");
         *         list.add(0,2222);
         *         list.contains("1111");
         *         list.remove(1);
         *         list.get(1);
         *         list.set(1,222);
         *         list.size();
         *         list.clear();
         */

        /*
            总结：
                1. LinkedList底层使用的是双向链表来实现的
                2. 能优化链表的遍历和查找
                3. 掌握LinkedList和常见的api
                4. 能自己手写单链表和双链表和双向循环链表
                5. 掌握复杂代码或者复杂业务的代码阅读方式（processon）
        LinkedList list = new LinkedList();
        list.push("admin");
        list.add("admin");
        list.add(1, "admin");
        list.addLast("admin");
        list.addFirst("admin");

        list.pop(); //返回第一个节点的数据 同时删除第一个原始
        list.peek(); //返回第一个节点的数据 但是不删除元素
        list.peekFirst();
        list.peekLast();

        list.poll(); //返回第一个节点的数据 同时删除第一个原始
        list.pollFirst(); //返回第一个节点的数据 同时删除第一个原始
        list.pollLast();

        list.get(1);
        list.getFirst();
        list.getLast();

        list.contains("amdin");
        list.indexOf("admin");

        list.clear();*/

        /*HashMap map = new HashMap();
        map.put("hello", "value");

        map.put("hello", "cdheima63");

        map.put("itcast", "heima");


        map.put("java", "php");

        int a = 2;
        int b = 16;
        System.out.println(a & b);*/

    }
}
